Many communications systems and on-line transaction processing systems interact with users, administrators, service personnel, and others by means of announcement, prompt, and other types of messages, which the system outputs and presents in text or audio form. Such systems are quite often designed to generate and present messages in one (native) language. But their use in foreign or multi-lingual countries may require that the messages be presented in a different language or in multiple languages. Of course, the system could be redesigned to have multi-lingual capability. But this is often economically or technically impractical, particularly for existing systems. One reason for that impracticality is the way in which individual messages are constructed: as a string of fixed words interspersed with variables. The system software typically constructs the message whenever it is needed from its individual component elements by using rules which define the structure and grammar of the system's native language. This makes it very difficult if not impossible to modify the software directly to produce a corresponding message in another language. Furthermore, the presence of the variables results in a very large number of possible messages, which makes their translation via standard lookup, pattern-matching, methods unwieldy.